import { createApp } from 'vue'
import App from './App.vue'

//引入路由对象
import router from './routers/index'

//引入UI框架
import Vant from 'vant';
import 'vant/lib/index.css';

//引入api接口
import api from '@/api/index.js'

//引入cookies
import VueCookies from 'vue3-cookies'

//挂载
const app = createApp(App)
    .use(router) //挂载路由
    .use(Vant) //挂载UI
    .use(api) //挂载请求
    .use(VueCookies)
    .mount('#app')


//添加路由守卫做判断是否有无登录
router.beforeEach(async (to, from, next) => {
    //to 这个参数代表 去到哪个路由
    //from 这个参数代表 从哪里来
    //next 这个参数代表 是否可以去到下一步
    //需要登录
    if(to.meta.auth){

        //判断是否有无cookie 
        var LoginUser = app.$cookies.get('LoginUser')

        //没有登录就跳转到登录界面
        if(!LoginUser){
            next('/user/base/login')
            return
        } else{

            //获取id
            var userid = LoginUser.id ? LoginUser.id : 0;

            //接口请求
            var result = await api.check({id:userid})

            if(result.code == '1'){
                //验证成功
                //覆盖cookie
                app.$cookies.set('LoginUser', result.data)

                //让他去到该去的路由
                next()
            } else{
                //验证失败
                app.$cookies.remove('LoginUser')

                //跳转了
                next('/user/base/login')
                return
            }
        }
    } else{
        //不需要登录,直接跳转路由
        next()
    }
})